//导入express模块
var express = require("express");
//导入mongoose模块
var mongoose = require("mongoose");
//导入密码加密模块
var md5 = require("blueimp-md5");


//导入users表对象
var user = require("./models/user.js");

//创建router容器
var router = express.Router();

router.get("/", function(req, res) {
	res.render("index.html", {
		user: req.session.user
	});
});
//登录页面路由
router.get("/login", function(req, res) {
	res.render("login.html");
});
//验证登录页面路由
router.post("/login", function(req, res) {
	var body = req.body;
	console.log(md5(body.password));
	user.findOne({
		email: body.email,
		password: md5(body.password)
	}, function(err, data) {

		if(err){
			return res.status(500).json({
				err_code:500,
				message:err.message
			})
		}
		console.log(data);
		if(!data){
			return res.status(200).json({
				err_code:1,
				message:"用户不存在"
			})
		}

		//如果验证用户成功的话，给session注入当前用户登录状态
		req.session.user=data;
		//给用户传回登录指令
		res.status(200).json({
			err_code:0,
			message:"success!"
		});
	});

});

//退出登录的路由界面
router.get("/logout",function(req,res){
	//清除当前用户的session登录状态
	req.session.user=null;
	//重定向至登录界面
	res.redirect("/login");
});

//注册页面路由
router.get("/register", function(req, res) {
	res.render("register.html");
});

//验证注册路由
router.post("/register", function(req, res) {
	//获取post表单的对象
	var body = req.body;
	console.log(body.nickname);
	user.find({
		$or: [{
			nickname: body.nickname
		}, {
			email: body.email
		}]

	}, function(err, data) {
		//查询发生代码失败
		if (err) {
			return res.status(500).json({
				err_code: 500,
				message: "内部发生错误"
			});
		}
		console.log(data);
		if (data.length > 0) {
			console.log("已存在");
			return res.status(200).json({
				err_code: 1,
				message: "已有相同的邮箱或者昵称"
			});
			console.log("继续");
		}
		//对密码进行加密
		body.password = md5(body.password);
		new user(body).save(function(err, data) {
			if (err) {
				return res.status(500).json({
					err_code: false,
					message: "内部发生错误"
				});
			}
			if (data) {
				//向session中保存该用户的信息状态
				req.session.user = data
				return res.status(200).json({
					err_code: 0,
					message: "注册成功"
				});
			}
			console.log("ok");
		});
	});


});

//将装有本模块所有路由的容器导出这个模块
module.exports = router;